/* GUI CONVERTED from rcshmta.p (converter v1.76) Tue Aug 20 15:41:45 2002 */
/* rcshmta.p - Release Management Customer Schedules                         */
/* Copyright 1986-2002 QAD Inc., Carpinteria, CA, USA.                       */
/* All rights reserved worldwide.  This is an unpublished work.              */
/* $Revision: 1.10.1.5 $                                                 */
/*V8:ConvertMode=Maintenance                                                 */
/* REVISION: 7.3      LAST MODIFIED: 10/12/92   BY: WUG *G462*               */
/* REVISION: 7.3      LAST MODIFIED: 10/04/93   BY: WUG *GG13*               */
/* REVISION: 7.3      LAST MODIFIED: 12/15/94   BY: rxm *GN16*               */
/* REVISION: 7.3      LAST MODIFIED: 03/04/95   BY: jxz *G0GG*               */
/* REVISION: 7.3      LAST MODIFIED: 01/18/96   BY: kjm *G1KB*               */
/* REVISION: 7.3      LAST MODIFIED: 02/22/96   BY: ais *G1NT*               */
/* REVISION: 8.6      LAST MODIFIED: 07/18/96   BY: *K003* Vinay Nayak-Sujir */
/* REVISION: 7.3      LAST MODIFIED: 11/08/96   BY: *G2HN* Ajit Deodhar      */
/* REVISION: 8.6      LAST MODIFIED: 04/02/97   BY: *K09H* Vinay Nayak-Sujir */
/* REVISION: 8.6      LAST MODIFIED: 04/09/97   BY: *K08N* Steve Goeke       */
/* REVISION: 8.6      LAST MODIFIED: 07/17/97   BY: *J1WM* Ajit Deodhar      */

/* REVISION: 8.6E     LAST MODIFIED: 02/23/98   BY: *L007* A. Rahane */
/* REVISION: 8.6E     LAST MODIFIED: 05/20/98   BY: *K1Q4* Alfred Tan        */
/* REVISION: 8.6E     LAST MODIFIED: 10/04/98   BY: *J314* Alfred Tan        */
/* REVISION: 8.6E     LAST MODIFIED: 02/17/00   BY: *K25J* Abhijeet Thakur   */
/* REVISION: 9.1      LAST MODIFIED: 03/24/00   BY: *N08T* Annasaheb Rahane */
/* REVISION: 9.1      LAST MODIFIED: 08/12/00   BY: *N0KP* myb               */
/* Old ECO marker removed, but no ECO header exists *F0PN*               */
/* Revision: 1.10.1.4    BY: Ellen Borden DATE: 07/09/01  ECO: *P007* */
/* $Revision: 1.10.1.5 $  BY: Samir Bavkar    DATE: 08/15/02 ECO: *P09K*    */
/******************************************************************************/
/* All patch markers and commented out code have been removed from the source */
/* code below. For all future modifications to this file, any code which is   */
/* no longer required should be deleted and no in-line patch markers should   */
/* be added.  The ECO marker should only be included in the Revision History. */
/******************************************************************************/

         /* SHIPPER MAINT SUBPROGRAM */

/* Maintain list of subcontainers */

{mfdeclre.i}
{gplabel.i} /* EXTERNAL LABEL INCLUDE */

/* ********** Begin Translatable Strings Definitions ********* */

&SCOPED-DEFINE rcshmta_p_1 "Container ID"
/* MaxLen: Comment: */

&SCOPED-DEFINE rcshmta_p_2 " Contents (Containers) "
/* MaxLen: Comment: */

/* ********** End Translatable Strings Definitions ********* */

{rcinvtbl.i new}

define input parameter abs_recid as recid.

define buffer abs_mstr_cont for abs_mstr.
define buffer abs_mstr_item for abs_mstr.
define buffer abs_tmp for abs_mstr.
define buffer b2_abs_mstr for abs_mstr.
define variable del-yn like mfc_logical.
define variable wt_conv as decimal.
define variable vol_conv as decimal.
define variable parent_shipto as character.
define variable subcont_shipto as character.
define variable abs_cont_id like abs_id.
define variable cons_ok as logical no-undo.
define variable par_absid like abs_id no-undo.
define variable par_shipfrom like abs_shipfrom no-undo.
define shared variable global_recid as recid.
define variable addr as character.
define variable parent_dock_id like parent_shipto.
define variable err_flag like mfc_logical initial false no-undo.
define variable vLastField as character no-undo.
define variable use-log-acctg as logical no-undo.
define variable l_FirstOrder like so_nbr no-undo.
define variable l_FrTermsOnFirstOrder like so_fr_terms no-undo.
define variable l_FrTermsErr like mfc_logical no-undo.
define variable l_ParentFound as logical no-undo.

/* VARIABLE DEFINITIONS FOR gpfile.i */
{gpfilev.i}
{apconsdf.i}   /* PRE-PROCESSOR CONSTANTS FOR LOGISTICS ACCOUNTING */

/*DETERMINE IF CONTAINER AND LINE CHARGES IS ENABLED */
{cclc.i}

/* CHECK IF LOGISTICS ACCOUNTING IS ENABLED */
{gprun.i ""lactrl.p"" "(output use-log-acctg)"}
/*GUI*/ if global-beam-me-up then undo, leave.


do for abs_mstr_cont:
   
/*GUI preprocessor Frame A define */
&SCOPED-DEFINE PP_FRAME_NAME A

FORM /*GUI*/ 
      
 RECT-FRAME       AT ROW 1.4 COLUMN 1.25
 RECT-FRAME-LABEL AT ROW 1   COLUMN 3 NO-LABEL
 SKIP(.1)  /*GUI*/
abs_cont_id  colon 25 label {&rcshmta_p_1}
      format "x(8)"
      pt_desc1        at 37 no-label
    SKIP(.4)  /*GUI*/
with frame a side-labels width 80 attr-space

       NO-BOX THREE-D /*GUI*/.

 DEFINE VARIABLE F-a-title AS CHARACTER.
 F-a-title = (getFrameTitle("CONTENTS_(CONTAINERS)",30)).
 RECT-FRAME-LABEL:SCREEN-VALUE in frame a = F-a-title.
 RECT-FRAME-LABEL:WIDTH-PIXELS in frame a =
  FONT-TABLE:GET-TEXT-WIDTH-PIXELS(
  RECT-FRAME-LABEL:SCREEN-VALUE in frame a + " ", RECT-FRAME-LABEL:FONT).
 RECT-FRAME:HEIGHT-PIXELS in frame a =
  FRAME a:HEIGHT-PIXELS - RECT-FRAME:Y in frame a - 2.
 RECT-FRAME:WIDTH-CHARS IN FRAME a = FRAME a:WIDTH-CHARS - .5. /*GUI*/

/*GUI preprocessor Frame A undefine */
&UNDEFINE PP_FRAME_NAME



   /* SET EXTERNAL LABELS */
   setFrameLabels(frame a:handle).
end.

find abs_mstr where recid(abs_mstr) = abs_recid no-lock.
global_recid = abs_recid.

for first ad_mstr
      fields(ad_addr ad_ref)
      where ad_addr = abs_shipto no-lock:
end. /* FOR FIRST AD_MSTR */
if available ad_mstr then
   do:

   parent_shipto = ad_addr.
   /* *THIS LOGIC FINDS THE Ship-To OF THE ENTERED ADDRESS IF IT IS A DOCK */
   find first ls_mstr where ls_addr = ad_addr
      and (ls_type = "ship-to" or ls_type = "customer") no-lock no-error.

   do while not available ls_mstr and ad_ref > "":
      addr = ad_ref.
      find ad_mstr where ad_addr = addr no-lock.

      find first ls_mstr where ls_addr = ad_addr
         and (ls_type = "ship-to" or ls_type = "customer") no-lock no-error.
   end.
   parent_shipto = ad_addr.

   parent_dock_id = abs_shipto.

   assign
      global_site = abs_shipfrom
      global_addr = abs_shipto.
end. /* IF AVAILABLE AD_MSTR */

repeat for abs_mstr_cont with frame a:
/*GUI*/ if global-beam-me-up then undo, leave.


   prompt-for abs_cont_id
      go-on(F5 CTRL-D)
      editing:
      {mfnp05.i abs_mstr_cont abs_par_id
         "abs_shipfrom = abs_mstr.abs_shipfrom
               and abs_par_id = abs_mstr.abs_id
               and abs_id begins ""c"" "
         abs_id "input abs_cont_id"}
      if recno <> ? then do:
         clear frame a.
/*GUI*/ RECT-FRAME-LABEL:SCREEN-VALUE in frame a = F-a-title.
         {pxmsg.i &MSGNUM=8221 &ERRORLEVEL=1}  /* F5 to delete */
         find pt_mstr where pt_part = abs_item no-lock no-error.

         display
            substring(abs_id,2,8) @ abs_cont_id

            pt_desc1 when (available pt_mstr).
      end.
   end.

   find abs_mstr_cont where abs_shipfrom = abs_mstr.abs_shipfrom
      and abs_id = "c" + input abs_cont_id
      and abs_type = "s"
      exclusive-lock no-error.

   if not available abs_mstr_cont then do:
      {pxmsg.i &MSGNUM=8130 &ERRORLEVEL=3}
      bell.
      undo, retry.
   end.

   if abs_mstr.abs_id = abs_mstr_cont.abs_id then do:
      {pxmsg.i &MSGNUM=8197 &ERRORLEVEL=3}
      bell.
      undo, retry.
   end.

   if abs_par_id > "" and abs_par_id <> abs_mstr.abs_id then do:
      {pxmsg.i &MSGNUM = 8223 &ERRORLEVEL = 3 &MSGARG1 = abs_par_id}
      undo, retry.
   end.

   {rcshmta1.i}

   /* CHECK SPECIFIED CONTAINER STRUCTURE FOR VALID SO LINE ITEMS */

   {gprun.i ""rcctmtd.p"" "(recid(abs_mstr_cont), output err_flag)"}
/*GUI*/ if global-beam-me-up then undo, leave.

   if err_flag then do:
      err_flag = false.
      /* CONTAINS ONE OR MORE INVALID SALES ORDER LINE ITEMS */
      {pxmsg.i &MSGNUM=1882 &ERRORLEVEL=3}
      next-prompt abs_cont_id.
      undo, retry.
   end. /* IF ERR_FLAG THEN */

   /* VALIDATE THE SHIP-TO ADDRESS ONLY IF ITS NON-BLANK */
   if abs_shipto <> "" then do:

      find first ls_mstr where ls_addr = abs_shipto and
         (ls_type = "customer" or ls_type = "ship-to" or ls_type = "dock")

         no-lock no-error.

      if not available ls_mstr then do:

         {pxmsg.i &MSGNUM=8132 &ERRORLEVEL=3}
         bell.
         undo, retry.
      end.

      subcont_shipto = ls_addr.

      /* VALIDATE THE CONTAINER SHIP-TO/DOCK IS SAME AS THAT OF SHIPPER
      OR EQUAL TO THE "PARENT" OF THE "DOCK" ON THE SHIPPER. */

      if (subcont_shipto <> parent_shipto) and
         (subcont_shipto <> parent_dock_id) then do:
         /* Container ID assigned to a different ship-to */
         {pxmsg.i &MSGNUM = 8224 &ERRORLEVEL = 3 &MSGARG1 = abs_shipto}
         undo, retry.

      end.

   end. /* IF ABS_SHITO <> "" THEN */

   /* IF LOGISTICS ACCOUNTING IS ENABLED THEN VALIDATE IF FREIGHT TERMS */
   /* ON ALL ORDERS ATTACHED TO THE CONTAINER LINES ARE SAME.           */
   if use-log-acctg then do:

      /* ABS_MSTR_CONT IS THE ABS_MSTR RECORD FOR THE CONTAINER BEING */
      /* ATTACHED.                                                    */
      /* ABS_MSTR IS THE ABS_MSTR RECORD FOR PARENT CONTAINER/SHIPPER */

      /* --- BEGIN ----------*/
      /* CHECK IF ALL ORDERS ATTACHED TO THIS CONTAINER HAVE THE SAME */
      /* TERMS.                                                       */

      /* THIS CHECK IS DONE TO VALIDATE CONTAINERS THAT MAY HAVE BEEN */
      /* CREATED BEFORE LOGISTICS ACCOUNTING WAS ENABLED AND HAD      */
      /* ORDERS ATTACHED WITH DIFFERENT TERMS.                        */

      l_FirstOrder = "".
      {gprunmo.i  &module = "LA" &program = "lashex01.p"
                  &param  = """(buffer abs_mstr_cont,
                                output l_FirstOrder,
                                output l_FrTermsOnFirstOrder)"""}

      if l_FirstOrder <> "" then do:
         {gprunmo.i  &module = "LA" &program = "lashex02.p"
                     &param  = """(buffer abs_mstr_cont,
                                   input l_FrTermsOnFirstOrder,
                                   output l_FrTermsErr)"""}
      end.

      if l_FrTermsErr then do:
         /* ALL ATTACHED ORDERS MUST HAVE FREIGHT TERMS # */
         {pxmsg.i &MSGNUM = 5056 &ERRORLEVEL = 3
                  &MSGARG1 = l_FrTermsOnFirstOrder}
         undo, retry.
      end.
      /* --- END ----------*/

      /* --- BEGIN ----------*/
      /* CHECK IF ALL ORDERS ATTACHED TO THIS CONTAINER HAVE FREIGHT  */
      /* TERMS SAME AS THAT ON THE PARENT CONTAINER/SHIPPER.          */

      /* WHEN MAINTAINING A CONTAINER GET THE HIGHEST LEVEL PARENT OF */
      /* THIS CONTAINER.                                              */

      /* IF A CONTAINER IS PREVIOUSLY ATTACHED TO A SHIPPER AND THEN  */
      /* WE ADD OTHER CONTAINERS TO THIS CONTAINER USING SO CONTAINER */
      /* MAINTENANCE WE NEED TO VALIDATE THAT THE FREIGHT TERMS ON    */
      /* ORDERS ATTACHED TO THIS CONTAINER SHOULD BE SAME AS THOSE ON */
      /* ORDERS ATTACHED TO THE PARENT SHIPPER.                       */

      assign
         l_ParentFound = false
         l_FirstOrder = "".

      if abs_mstr.abs_par_id <> "" then  do:
         run get_abs_parent (input abs_mstr.abs_id,
                             input abs_mstr.abs_shipfrom,
                             output par_absid,
                             output par_shipfrom).
         if par_absid <> ? then
         do for b2_abs_mstr:
            for first b2_abs_mstr where b2_abs_mstr.abs_id = par_absid and
               b2_abs_mstr.abs_shipfrom = par_shipfrom
               no-lock:
            end.
            if available b2_abs_mstr then do:
               {gprunmo.i  &module = "LA" &program = "lashex01.p"
                           &param  = """(buffer b2_abs_mstr,
                                         output l_FirstOrder,
                                         output l_FrTermsOnFirstOrder)"""}
               l_ParentFound = true.
            end. /* IF AVAILABLE b2_abs_mstr */
         end. /* DO FOR B2_ABS_MSTR */
      end. /* IF ABS_MSTR.ABS_PAR_ID <> "" */

      if not l_ParentFound then do:
         {gprunmo.i  &module = "LA" &program = "lashex01.p"
                     &param  = """(buffer abs_mstr,
                                   output l_FirstOrder,
                                   output l_FrTermsOnFirstOrder)"""}
      end. /* IF NOT PARENT FOUND */

      if l_FirstOrder <> "" then do:
         {gprunmo.i  &module = "LA" &program = "lashex02.p"
                     &param  = """(buffer abs_mstr_cont,
                                   input l_FrTermsOnFirstOrder,
                                   output l_FrTermsErr)"""}
      end.

      if l_FrTermsErr then do:
         /* All attached orders must have freight terms # */
         {pxmsg.i &MSGNUM = 5056 &ERRORLEVEL = 3
                  &MSGARG1 = l_FrTermsOnFirstOrder}
         undo, retry.
      end.
      /* --- END ----------*/

      /* IF THIS IS A SHIPPER AND IT DOES NOT HAVE A LOGISTICS CHARGE DETAIL */
      /* RECORD,CREATE ONE IF THERE IS AN ORDER WITH NON-BLANK FREIGHT TERMS */
      /* ATTACHED TO THE CONTAINER WHICH IS BEING ATTACHED TO THIS SHIPPER.  */
      if (abs_mstr.abs_par_id = "" and abs_mstr.abs_id begins "s") and
         l_FirstOrder <> "" and l_FrTermsOnFirstOrder <> "" then do:
         {gprunmo.i  &module = "LA" &program = "larcsh01.p"
                     &param  = """(input l_FirstOrder,
                                   input l_FrTermsOnFirstOrder,
                                   input '{&TYPE_SO}',
                                   input substring(abs_mstr.abs_id,2),
                                   input abs_mstr.abs_shipfrom,
                                   input '{&TYPE_SOShipper}')"""}
      end. /* IF ABS_MSTR.ABS_PAR_ID = "" AND ABS_MSTR.ABS_ID BEGINS "S" AND .*/
   end.
/*GUI*/ if global-beam-me-up then undo, leave.
 /* IF USE-LOG-ACCTNG */

   find pt_mstr where pt_part = abs_item no-lock no-error.

   find abs_mstr where recid(abs_mstr) = abs_recid exclusive-lock.

   do for abs_tmp:
      run get_abs_parent (input abs_mstr.abs_id,
         input abs_mstr.abs_shipfrom,
         output par_absid, output par_shipfrom).
      if par_absid <> ? then do:
         find abs_tmp where abs_tmp.abs_id = par_absid and
            abs_tmp.abs_shipfrom = par_shipfrom
            no-lock no-error.

         /* If invoice consolidation is to happen, then check
         for compatibility of SOs on the shipper */
         if available abs_tmp and
            /* And combined shipper-invoice document */
            can-find (first df_mstr where
            df_format = abs_tmp.abs_format and
            df_type = "1" and
            df_inv = true) then do:
            run chk_abs_inv_cons (input abs_tmp.abs_id,
               input abs_tmp.abs_shipfrom,
               input abs_mstr_cont.abs_id,
               input abs_mstr_cont.abs_shipfrom,
               "",
               output cons_ok).

            if cons_ok = false then do:
               {pxmsg.i &MSGNUM=5835 &ERRORLEVEL=3}
               /* SALES ORDERS DO NOT MEET INVOICE CONSOLIDATION CONDITION */
               undo, retry.
            end.
         end. /* if can-find first df_mstr  */
      end. /* if par_absid <> ?  */
   end. /* do for abs_tmp */

   if abs_mstr.abs_vol_um = "" then abs_mstr.abs_vol_um = abs_vol_um.
   if abs_mstr.abs_wt_um = "" then abs_mstr.abs_wt_um = abs_wt_um.

   if abs_par_id = "" then do:
      /* THIS IS FOR AN UNASSIGNED CONTAINER WE ARE ADDING */

      wt_conv = 1.

      if abs_wt_um <> abs_mstr.abs_wt_um then do:
         {gprun.i ""gpumcnv.p""
            "(input abs_wt_um, input abs_mstr.abs_wt_um, input abs_item,
                  output wt_conv)"}
/*GUI*/ if global-beam-me-up then undo, leave.

      end.

      if wt_conv = ? then do:
         {pxmsg.i &MSGNUM = 8225 &ERRORLEVEL = 3
          &MSGARG1 = abs_item + " " + abs_wt_um + " " + abs_mstr.abs_wt_um}
         undo, retry.
      end.

      vol_conv = 1.

      if abs_vol_um <> abs_mstr.abs_vol_um then do:
         {gprun.i ""gpumcnv.p""
            "(input abs_vol_um, input abs_mstr.abs_vol_um, input """",
                  output vol_conv)"}
/*GUI*/ if global-beam-me-up then undo, leave.

      end.

      if vol_conv = ? then do:
         {pxmsg.i &MSGNUM = 8226 &ERRORLEVEL = 3
          &MSGARG1 = abs_item + " " + abs_vol_um + " " + abs_mstr.abs_vol_um}
         undo, retry.
      end.

      abs_mstr.abs_gwt = abs_mstr.abs_gwt + (abs_gwt * wt_conv).
      abs_mstr.abs_nwt = abs_mstr.abs_nwt + (abs_nwt * wt_conv).
      abs_mstr.abs_vol = abs_mstr.abs_vol + (abs_vol * vol_conv).
   end.

   display

      pt_desc1 when (available pt_mstr).

   if lastkey = keycode("F5") or lastkey = keycode("CTRL-D") then do:
      del-yn = yes.
      {pxmsg.i &MSGNUM = 11 &ERRORLEVEL = 1 &CONFIRM = del-yn}
      if del-yn = no then undo, retry.

      abs_par_id = "".

      {gprun.i ""gpumcnv.p""
         "(input abs_wt_um, input abs_mstr.abs_wt_um, input """",
               output wt_conv)"}
/*GUI*/ if global-beam-me-up then undo, leave.


      {gprun.i ""gpumcnv.p""
         "(input abs_vol_um, input abs_mstr.abs_vol_um, input """",
               output vol_conv)"}
/*GUI*/ if global-beam-me-up then undo, leave.


      abs_mstr.abs_gwt = abs_mstr.abs_gwt - (abs_gwt * wt_conv).
      abs_mstr.abs_nwt = abs_mstr.abs_gwt - (abs_nwt * wt_conv).
      abs_mstr.abs_vol = abs_mstr.abs_gwt - (abs_nwt * vol_conv).

      /* Delete additional shipper info using form services */
      {gprun.i  ""sofsde.p""  "(recid(abs_mstr))" }
/*GUI*/ if global-beam-me-up then undo, leave.


      /* IF THE PARENT IS A SHIPPER AND THE LAST CONTAINER IS DEATTACHED */
      /* FROM THIS SHIPPER, CHECK TO SEE IF THERE IS ATLEAST ONE ORDER   */
      /* STILL ATTACHED TO THIS SHIPPER, IF NOT DELETE THE LOGISTICS     */
      /* ACCOUNTING CHARGE DETAIL RECORD ASSOCIATED WITH THE SHIPPER.    */

      if use-log-acctg and
         (abs_mstr.abs_par_id = "" and abs_mstr.abs_id begins "s") then
      do:
         {gprunmo.i  &module = "LA" &program = "lashex01.p"
                     &param  = """(buffer abs_mstr,
                                   output l_FirstOrder,
                                   output l_FrTermsOnFirstOrder)"""}

         if l_FirstOrder = "" then do:
            /* DELETE LOGISTICS ACCTG CHARGE DETAIL */
            {gprunmo.i  &module = "LA" &program = "laosupp.p"
                        &param  = """(input 'DELETE',
                                      input '{&TYPE_SOShipper}',
                                      input substring(abs_mstr.abs_id,2),
                                      input abs_mstr.abs_shipfrom,
                                      input ' ',
                                      input ' ',
                                      input no,
                                      input no)"""}
         end. /* IF l_FirstOrder = "" */
      end. /* IF USE-LOG-ACCTG AND ABS_MSTR.ABS_PAR_ID = "" */

      clear.
      next.
   end.

   abs_par_id = abs_mstr.abs_id.
   if (using_container_charges or using_line_charges)
   then do:
      vLastField =  "abs_cont_id".
      if can-find(first absd_det where
         absd_abs_id = abs_id
         and absd_shipfrom = abs_shipfrom
         and absd_abs_fld_name = vLastField
         and absd_fld_prompt = yes)
      then do:
         /*Update user defined fields for specific shipper field*/
         {gprunmo.i
            &module = "ACL"
            &program = ""rcswbuf.p""
            &param   = """(input yes,
                                      input vLastField,
                                      input abs_id,
                                      input abs_shipfrom)"""}
      end. /*IF CAN-FIND*/
   end. /*IF (USING_CONTAINER_CHARGES OR GO-PENDING OR*/

   /* IF THIS IS A SHIPPER AND IT DOES NOT HAVE A LOGISTICS CHARGE DETAIL */
   /* RECORD,CREATE ONE IF THERE IS AN ORDER WITH NON-BLANK FREIGHT TERMS */
   /* ATTACHED TO THE CONTAINER WHICH IS BEING ATTACHED TO THIS SHIPPER.  */
   if use-log-acctg and
      (abs_mstr.abs_par_id = "" and abs_mstr.abs_id begins "s") then do:

      {gprunmo.i  &module = "LA" &program = "lashex01.p"
                  &param  = """(buffer abs_mstr,
                                output l_FirstOrder,
                                output l_FrTermsOnFirstOrder)"""}

      if l_FirstOrder <> "" and l_FrTermsOnFirstOrder <> "" then do:
         {gprunmo.i  &module = "LA" &program = "larcsh01.p"
                     &param  = """(input l_FirstOrder,
                                   input l_FrTermsOnFirstOrder,
                                   input '{&TYPE_SO}',
                                   input substring(abs_mstr.abs_id,2),
                                   input abs_mstr.abs_shipfrom,
                                   input '{&TYPE_SOShipper}')"""}
      end. /* IF L_FIRSTORDER <> "" AND ... */
   end. /* IF USE-LOG-ACCTG AND ABS_MSTR.ABS_PAR_ID = "" AND ... */

end.

hide frame a.
{rcinvcon.i}
